/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package exia.java.core.services;

import exia.java.core.entities.Livre;
import java.util.List;

/**
 *
 * @author Jeannette Sebastien
 */
public interface IServiceLivre{
    /**
     *
     * @param livre
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public boolean addLivre(final Livre livre)throws ServiceLivreException;
    /**
     *
     * @param livre
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public boolean removeLivre(final Livre livre)throws ServiceLivreException;
    /**
     * 
     * @param livre
     * @return
     * @throws ServiceLivreException
     */
    public boolean updateLivre(final Livre livre)throws ServiceLivreException;
    /**
     *
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public List<Livre> getLivres()throws ServiceLivreException;
    /**
     *
     * @param titre
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public Livre getLivreByTitre(final String titre)throws ServiceLivreException;
    /**
     *
     * @param id
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public Livre getLivreById(final int id)throws ServiceLivreException;
    /**
     *
     * @param auteur
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public List<Livre> getLivresByAuteur(final String auteur)throws ServiceLivreException;
    /**
     *
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public int countLivres()throws ServiceLivreException;
    /**
     *
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public boolean hasLivres()throws ServiceLivreException;
    /**
     *
     * @param livre
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public boolean hasLivre(final Livre livre)throws ServiceLivreException;
    /**
     *
     * @param titre
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public boolean hasLivreWithTitre(final String titre)throws ServiceLivreException;
    /**
     * 
     * @param auteur
     * @return
     * @throws exia.java.core.services.ServiceLivreException
     */
    public boolean hasLivresWithAuteur(final String auteur)throws ServiceLivreException;
}
